1. Field of the Invention
The present invention relates to Mobile IP network technology. More particularly, the present invention relates to Mobile IP inter- and intra-agent mobility.
2. Description of the Related Art
Mobile IP is a protocol which allows laptop computers or other mobile computer units (referred to as xe2x80x9cMobile Nodesxe2x80x9d herein) to roam between various sub-networks at various locationsxe2x80x94while maintaining Internet and/or WAN connectivity. Without Mobile IP or similar protocol, a Mobile Node would be unable to stay connected while roaming through various sub-networks. This is because the IP address required for any node to communicate over the Internet is location specific. Each IP address has a field that specifies the particular sub-network on which the node resides. If a user desires to take a computer which is normally attached to one subnetwork and roam with it so that it passes through different sub-networks, it cannot use its home base IP address. As a result, a business person traveling across the country cannot merely roam with his or her computer across geographically disparate network segments or wireless nodes while remaining connected over the Internet. This is not an acceptable state-of-affairs in the age of portable computational devices.
To address this problem, the Mobile IP protocol has been developed and implemented. An implementation of Mobile IP is described in RFC 2002 of the Network Working Group, C. Perkins, Ed., October 1996. Mobile IP is also described in the text xe2x80x9cMobile IP Unpluggedxe2x80x9d by J. Solomon, Prentice Hall. Both of these references are incorporated herein by reference in their entireties and for all purposes.
The Mobile IP process and environment are illustrated in FIG. 1. As shown there, a Mobile IP environment 2 includes the Internet (or a WAN) 4 over which a Mobile Node 6 can communicate remotely via mediation by a Home Agent 8 and a Foreign Agent 10. Typically, the Home Agent and Foreign Agent are routers or other network connection devices performing appropriate Mobile IP functions as implemented by software, hardware, and/or firmware. A particular Mobile Node (e.g., a laptop computer) plugged into its home network segment connects with the Internet through its designated Home Agent. When the Mobile Node roams, it communicates via the Internet through an available Foreign Agent. Presumably, there are many Foreign Agents available at geographically disparate locations to allow wide spread Internet connection via the Mobile IP protocol. Note that it is also possible for the Mobile Node to register directly with its Home Agent.
As shown in FIG. 1, Mobile Node 6 normally resides on (or is xe2x80x9cbased atxe2x80x9d) a network segment 12 which allows its network entities to communicate over the Internet 4 using a standard router. Of course, this standard router may also implement Home Agent/Foreign Agent functionality when needed. Note that Home Agent 8 need not directly connect to the Internet. For example, as shown in FIG. 1, it may be connected through another router (a router R1 in this case). Router R1 may, in turn, connect one or more other routers (e.g., a router R3) with the Internet.
Now, suppose that Mobile Node 6 is removed from its home base network segment 12 and roams to a remote network segment 14. Network segment 14 may include various other nodes such as a PC 16. The nodes on network segment 14 communicate with the Internet through a router which doubles as Foreign Agent 10. Mobile Node 6 may identify Foreign Agent 10 through various solicitations and advertisements which form part of the Mobile IP protocol. When Mobile Node 6 engages with network segment 14, Foreign Agent 10 relays a registration request to Home Agent 8 (as indicated by the dotted line xe2x80x9cRegistrationxe2x80x9d). The Home and Foreign Agents may then negotiate the conditions of the Mobile Node""s attachment to Foreign Agent 10. For example, the attachment may be limited to a period of time, such as two hours. When the negotiation is successfully completed, Home Agent 8 updates an internal xe2x80x9cmobility binding tablexe2x80x9d which specifies the care-of address (e.g., a collocated care-of address or the Foreign Agent""s IP address) in association with the identity of Mobile Node 6. Further, the Foreign Agent 10 updates an internal xe2x80x9cvisitor tablexe2x80x9d which specifies the Mobile Node address, Home Agent address, etc. In effect, the Mobile Node is given a new IP address to be able to receive and/or send information on segment 14.
Now, suppose that Mobile Node 6 wishes to send a message to a corresponding node 18 from its new location. A message from the Mobile Node is then packetized and forwarded through Foreign Agent 10 over the Internet 4 and to corresponding node 18 (as indicated by the dotted line xe2x80x9cpacket from MNxe2x80x9d) according to a standard Internet protocol. If corresponding node 18 wishes to send a message to Mobile Nodexe2x80x94whether in reply to a message from the Mobile Node or for any other reasonxe2x80x94it addresses that message to the IP address of Mobile Node 6 on sub-network 12. The packets of that message are then forwarded over the Internet 4 and to router R1 and ultimately to Home Agent 8 as indicated by the dotted line (xe2x80x9cpacket to MN(1)xe2x80x9d). From its mobility binding table, Home Agent 8 recognizes that Mobile Node 6 is no longer attached to network segment 12. It then encapsulates the packets from corresponding node 18 (which are addressed to Mobile Node 6 on network segment 12) according to a Mobile IP protocol and forwards these encapsulated packets to a xe2x80x9ccare ofxe2x80x9d address for Mobile Node 6 as shown by the dotted line (xe2x80x9cpacket to MN(2)xe2x80x9d). The care-of address may be, for example, the IP address of Foreign Agent 10. Foreign Agent 10 then strips the encapsulation and forwards the message to Mobile Node 6 on sub-network 14. The packet forwarding mechanism implemented by the Home and Foreign Agents is often referred to as xe2x80x9ctunneling.xe2x80x9d
As described above, a mobile node typically roams from its Home Agent on one router to a Foreign Agent on another router. When the mobile node disconnects from its Home Agent, a node that is sending packets to the mobile node will not receive an expected acknowledgement from the mobile node for a set of packets. As a result, the transmitting node will retransmit the set of packets to the mobile node through the Home Agent after a predefined period of time (or timeout period). This retransmission typically only occurs on a connection-oriented or reliable transport layer, such as TCP. If there is still no reply, the transmitting node attempts again to retransmit the set of packets, but after a longer predefined period of time. The transmitting node will keep trying to send the set of packets to the mobile node at ever increasing time intervals.
When the mobile node finally reconnects to a foreign agent and registers its new address (or reconnects to the same agent), the mobile node will have to wait a significant amount of time for packets to be resent by the transmitting node. That is, the mobile node must wait for the predefined time interval to expire before the transmitting node retransmits the packets.
In view of the above, it would be desirable to enable a mobile node to reestablish communication with a transmitting node after disconnecting from and reconnecting to such transmitting node without experiencing a significant delay in receiving packets.
Accordingly, the present invention provides an apparatus and method for triggering retransmission of packets that were sent by a sending node to a mobile node while the mobile node was temporarily cutoff from such sending node. In general terms, a portion of one or more packets and/or their associated headers is buffered as update information. This buffered update information can later be used to trigger retransmission of packets that were not received by a temporarily disconnected mobile node. This retransmission is triggered before the timeout period is reached (e.g., the buffered update information is used to trigger almost immediate resumption of transmission). For example, the last packet may be buffered as update information. When the mobile node disconnects and then reconnects to the network, the last packet can then be immediately sent to the mobile node. The mobile node will then respond to that last packet by informing the sending node whether or not any packets (e.g., that were sent prior to the last packet) failed to reach the mobile node. In another example, the update information can be used to directly notify the sending node whether any packets have failed to reach the mobile node.
In one embodiment, in a packet processing node supporting Mobile IP, a method for causing packets to be retransmitted from a sender to a mobile node is disclosed. A plurality of packets having associated update information are received. The packets are intended for the mobile node. The update information associated with at least one of the received packets is stored. When the mobile node is disconnected from the sender and reconnects to the sender, the sender is directed to retransmit a last portion of packets to the mobile node based on the stored update information.
In another embodiment, a router supporting Mobile IP for use with a mobile node to cause packets to be retransmitted from a sender to a mobile node is disclosed. The router includes a memory and a processor coupled to the memory. At least one of the memory and the processor are adapted to provide receiving a set of packets having associated update information to the router. The packets are intended for the mobile node. The at least one memory and processor are also adapted to provide sending the update information associated with at least one of the received packets and when mobile node is disconnected from the sender and reconnects to the sender, directing the sender to retransmit a last portion of the packets to the mobile node based on the stored update information.
In one embodiment, the sender is directed to retransmit the last portion of the packets by sending a message to the sender of the packets based on the update information. In a specific embodiment, the message is an acknowledgement (ACK) indicating which packet from the sender was received last by the mobile node prior to disconnecting. In another specific embodiment, the message is a nonacknowlegement (NAK) indicating one or more packets from the sender that were not received by the mobile node. In a further embodiment, the update information includes a source address, a destination address, and a sequence number.
In another embodiment, the sender is directed to retransmit the last portion of the packets by sending a trigger packet to the mobile node such that the mobile node will direct the sender to retransmit the last portion of packets. In a preferred embodiment, the trigger packet is a last packet within the portion of packets not received by the mobile node.
In another aspect, the invention pertains to a computer readable medium containing programming instructions for causing packets to be retransmitted from a sender to a mobile node. The computer readable medium includes computer code for receiving a plurality of packets having associated update information, the packets being intended for the mobile node and computer code for storing the update information associated with at least one of the received packets. The computer readable medium further includes computer code for when mobile node is disconnected from the sender and reconnects to the sender, directing the sender to retransmit a last portion of the packets to the mobile node based on the stored update information.
The present invention has several advantages. For example, since retransmission may be triggered as soon as a mobile node reconnects to a router, the mobile node does not have to wait long to receive missed packets, as compared to the conventional setup where the mobile node has to wait for the sending node to retry packet transmission after a predetermined period of time. Instead, the mobile node can trigger retransmission immediately after the mobile node completes reconnection.
In preferred embodiments, the retransmission triggering mechanisms are implemented independently of the transport layer of the mobile node and the sending node. In other words, the transport layer does not have to be modified to trigger retransmission of missing packets. That is, the transport layer (e.g., TCP layer) is already configured to respond to particular messages or packets from the network layer (e.g., IP layer) thereby triggering a retransmission of missing packets. An appropriate message or packet merely has to be sent to the transport layer of the mobile node or sending node to trigger retransmission. For example, when a packet having a sequence number that is more than one greater than the packet that was last received by the mobile node is sent to the mobile node, the transport layer of the mobile node then responds by telling the sending node to retransmit the missing packets.
These and other features and advantages of the present invention will be presented in more detail in the following specification of the invention and the accompanying figures which illustrate by way of example the principles of the invention.